The McCabe Visual Reengineering Toolset

Background | Maintenance | Modification | Systems Migration | Shifting to OO | Seminars and Training | Languages and Platforms

Software Engineering Tools that Deliver

Organizations today must respond to an avalanche of change in business conditions. Responding to change means that software must rapidly adapt to new needs. The pressure on the software organization to adapt software can be intense.

To be adapted, software must be understood. Yet due to a long history of evolution, lack of appropriate tools, and shifting personnel, most software is neither understood nor well documented. Understanding requires more than possession of source code listings. The vast and complex systems of today require that an entire architecture be visually available to the staff planning the changes. There is no other way to understand interaction among the many components and the impact that changes to one part of the system will have on other parts.

To meet the needs for visualization, the McCabe Visual Reengineering ToolSet(VRT) dissects your source code and provides a rich graphical environment in which it can be analyzed, displayed, and understood. An overlay of metrics information on the displayed information enables objective assessment of the software for reliability and maintainability. The McCabe VRT serves well in any of the reengineering tasks: the ongoing maintenance of existing systems, their modification to add new functions or capabilities, or their migration to new hardware platforms or architectures such as client-server. Key capabilities for these tasks include the identification of redundancy in the code, the compilation of a data dictionary, the extraction of legacy components for reuse, and built-in integrated testing for the new or changed system.

Comprehension of large systems built from one or many languages

An inventory of all software assets

An extended system lifetime

Deferred hardware purchases

Improved software quality

Automatic classification of all data usage


McCABE MAINTENANCE

Find the Problem Fast...

Diagnose the system

The McCabe VRT quickly parses the code and displays a picture of the structure of the software. Overlaid on the graphical display are the key metrics that guide a quick assessment of where the problems are.

Focus on trouble spots

Experience shows that 80% of the problems will be in 20% of the code. Focus your problem fixing efforts where they will have the most impact -- on the modules that have high complexity.

Anticipate, plan, and manage

Anticipate user requests for improvement or functional additions through understanding your software. Know the resources required to meet their needs for change. Manage your work through real-time access to the status of each component of your software.

Using the CodeBreaker Tool to Eliminate Redundancy

Redundancy is a problem that affects all systems. As a system is maintained and modified, new code is often very similar to code that already exists. It is not uncommon for the duplicate code to reach a level of 30% of the total system. This code is wasteful of maintenance resources and contributes to errors. The CodeBreaker Tool reduces redundancy by searching the metrics that characterize the code. In the examples shown below, the code for the flowgraph on the lower left and the one on the lower right has been calculated to be 94.45% similar, based upon the four metrics shown in the top text display. This information can be used to greatly simplify the code.


McCABE MODIFICATION

Plan and Understand the Change...

Find logic affected by any change

The McCabe VRT displays the logic affected by any change, and all the paths that must be tested. The impact of a change throughout your system and all the paths that must be retested are known.

Find, change and test any data locally or globally

A complete data dictionary capability is a standard part of the McCabe Visual Reengineering ToolSet. This identifies in text and graphically all data used in the system. With use of the data complexity metric, the data change can be visualized, the complexity of the data change quantified, and the tests generated to fully qualify the data change.

Add new functionality with the BattlePlan Tool

BattlePlan enables the addition of functionality at any point in a structure chart. With this tool, user requests for additions to functionality are easily accommodated and tested. The tool first searches for reusable code to match the functional requirement. If none is found in the system, a code template for the new function is generated.


McCABE SYSTEMS MIGRATION

Enabling Redevelopment for New System Architectures...

Assess quality and cohesiveness of existing software

Some software may be suitable for extraction and use in the new architecture. The McCabe Visual Reengineering ToolSet enables the quantitative and visual assessment of an existing software system to identify promising subsystems for preservation and reuse.

Extract functionality

By running the transaction for the desired functionality, the McCabe Slice Tool automatically extracts just the code needed for the desired function. The extracted code can then, for example, be put into a client server system.

Extract business rules for reuse in the new system

Using logical set operations, the code that represents the business rules can be automatically extracted and reused. This capability is critical for retaining key operational elements in the new system.

A bridge between old and new

The McCabe VRT, with its support of many languages, including object-oriented languages, provides a universal tool used to understand, manage, and implement system redevelopment. Through the language of graphics, a bridge between new and legacy systems is created so that managers and technical developers can mutually understand the challenge and progress of critical reengineering tasks.


USING McCABE TO MOVE TO THE OBJECT PARADIGM

Many organizations are considering or moving to the use of object technology. One of the major benefits of the object paradigm is that the modeling of computer software can closely parallel that of real world entities, like customers, invoices, and products. Business and technical people can now use the language of objects to share ideas about the way computer systems should work. To use the new technology, companies must adapt their legacy systems to accommodate objects.

The McCabe Visual Reengineering ToolSet helps companies bridge the gap between legacy systems and the new object-oriented paradigm. It can aggregate existing legacy components into classes, thereby providing a view of a traditional language system in an object-oriented way. These legacy classes can then be implemented in C++ or other OO languages. Further, the McCabe VRT has an automated method to find and extract business rules. These can be formed into objects in the OO system. The Data Tool included in the McCabe VRT finds code that utilizes common data. This code can be organized into methods (the code) around the common data.

The McCabe OO Tool provides facilities for assessing the quality of an OO system through metrics. It also provides special methods for testing the OO system. The metrics include measures for the three key aspects of an OO system: Inheritance, Encapsulation, and Polymorphism. Finally, the OO Tool can flag components as either ``SAFE'' or ``UNSAFE.'' Thus, portions of an OO system known to be reliable can be left out of future qualification efforts. For systems with large numbers of components this can be a major timesaver.


MCCABE COURSES ON REENGINEERING AND TESTING WITH THE TOOLS

All courses are available at public or at customer sites.

Automated Reverse Engineering

This course provides an opportunity to work on maintenance, modification, and migration projects at your site or ours to solve your problems. An appropriate amount of code is selected in advance for the length of the seminar. Participants use the tools to analyze their code and develop an inventory of software. Risky and unmaintainable code is identified, restructured where appropriate, and unit and integration level tests generated. The use of the metrics to analyze designs, and the use of the tools to extract reusable components is covered.

Other McCabe Courses

Other courses available in the McCabe Seminar Series teach the use of Structured Methodologies for Software Analysis and Design, and Structured Testing. A course in Software Quality Assurance is aimed at developing a program of quality assurance within software organizations. Other courses teach the use of the McCabe Tools. These include the Automated Reverse Engineering course discussed above, and the course in Structured Testing using the McCabe Tools. These courses also cover the use of the tools with OO languages.


Back to Visual ToolSets Back to the McCabe Home Page